In recent years, there has been increasing emphasis on developing teleworking applications and the supporting infrastructure. Teleworking generally includes telecommuting (the ability of an employee to work from home) and distance education.
The benefits of telecommuting can be felt in both urban and rural areas. Telecommuters in urban areas can avoid commuting to the office each workday, thereby reducing stress on the employee, increasing the amount of time available for work, and reducing automobile emissions. In rural areas, employees can work for employers located in urban areas without needing to commute or relocate. Rural areas reap the economic benefits of having a higher-paid workforce without the burden of building and maintaining a transportation infrastructure. Distance education provides similar benefits by permitting students to have some flexibility in course scheduling and providing rural areas access to educational resources.
Where teleworking applications fall short is in their support for collaborative development efforts. For example, recent trends in software development involve paired programming, where programmers work side-by-side at the same computer terminal developing the same portion of code. Programmers working in pairs are believed to produce more lines of code with fewer errors than programmers working alone. Paired programming involves a high level of verbal and non-verbal interaction between the programmers. Many existing teleworking applications support some level of interaction between participants, but typically require participants to divide their attention between different portions of a display device to view the person speaking and the subject matter being discussed. In some cases, special networking hardware is required. In addition, control of a single pointing device is often shared between collaborating users, which can impede the flow of communication since one user may need to surrender control of the pointing device to permit the other user to visually indicate the subject being discussed. Thus, existing computer interfaces that sectionalize a computer display between video images of users and the application being discussed are unsuitable for paired programming.
Another area in which existing computer interfaces fall short is education. Computer-based presentations are becoming increasingly common, both in business settings and educational settings. During a presentation, the presenter may wish to visually refer to a portion of a presentation slide, typically using a pointer stick or laser pointer. To align the pointer with the desired object on the computer interface, the presenter may need to move away from the computer being used to control the presentation slides and then back to advance the presentation to the next slide. The back and forth movement of the presenter may be distracting to the viewers and may interrupt the flow of the presentation. The members of the audience may have to divide their attention between the slide being presented and the presenter, which may detract from the quality of the presentation. In addition, depending on the size and position of the display, the presenter may not be able to satisfactorily indicate the portion of the presentation slide being referenced.
Accordingly, there is a need to provide methods and systems for controlling a computer using a video image and for combining the video image with a displayed computer desktop image.